# 写一个生产器函数 MyPrimes(begin, count=1) 用于生成 从 begin 开始的 count 个素数,
#
# def MyPrimes(begin, count=1):
#
# ...
#
#
#
# 运行结果如下:
#
# L1 = list(MyPrimes(2, 4))
#
# print("L1:", L1) # [2, 3, 5, 7]
#
# L2 = list(MyPrimes(4, 3))
#
# print("L2:", L2) # [5, 7, 11]
#
# for x in MyPrimes(0, 10):
#
# print("x:", x) # 打印 2 3 5 7 11 13 17 19 23 29

# 写一个生产器函数 MyPrimes(begin, count=1) 用于生成 从 begin 开始的 count 个素数,

def is_prime(n):
    '''给定一个数字n,返回n是否为素数'''
    if n <= 1:
        return False
    for i in range(2, n):
        if n % i == 0:
            return False
    return True

def MyPrimes(begin, count=1):
    '''生成从begin开始，count个素数'''
    while count > 0:  # 控制个数
        if is_prime(begin):
            # 如果生成了一个素数，则count -= 1
            yield begin
            count -= 1
        begin += 1

# 运行结果如下:
L1 = list(MyPrimes(2, 4))
print("L1:", L1) # [2, 3, 5, 7]

L2 = list(MyPrimes(4, 3))
print("L2:", L2) # [5, 7, 11]

for x in MyPrimes(0, 10):
    print("x:", x) # 打印 2 3 5 7 11 13 17 19 23 29

